#!/usr/bin/perl
sub hello{
    my $handle = shift;
    print $handle "Howdy folks;\n";
}
my $fh = get_fh();
sub get_fh{
    open (FOO, ">foo.txt") or die "foo: $!";
    return \*FOO;
}
hello($fh);

# typeglob 引用能用于接受单一文件句柄的任意地方，包括用作print，read，sysread，syswrite的第一个参数，
# 也可以用作任何套接字相关的调用。

# 有时需要检查一个标量是否包含一个有效的文件句柄，fileno函数可以满足这个需要。
# $integer = fileno(FILEHANDLE)
# fileno 函数以字符串形式、typeglob或typeglob引用形式接受文件句柄，
# 如果该文件句柄有效则返回对应的描述符，否则返回undef
# demo：
#    die = "not a file handle" unless dofined fileno($fh);